package swapper.view.controller;

import org.springframework.web.servlet.mvc.SimpleFormController;
import swapper.facade.ProdutoFacade;
import swapper.facade.PropostaFacade;
import swapper.facade.StatusFacade;
import javax.servlet.ServletException;
import org.springframework.web.servlet.view.RedirectView;
import swapper.model.bean.Proposta;
import org.springframework.web.bind.ServletRequestDataBinder;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import swapper.model.bean.Produto;
import swapper.model.bean.Status;

/**
 *
 * @author Valentino
 */
public class PropostaSucessController extends AbstractSimpleForm {

    public PropostaSucessController(){
        super("proposta2", Proposta.class);
    }
    private ProdutoFacade produtofacade;
    private PropostaFacade propostafacade;
    private StatusFacade statusfacade;

    public void setProdutoFacade(ProdutoFacade produtofacade) {
        this.produtofacade = produtofacade;
    }

    public void setPropostaFacade(PropostaFacade propostafacade) {
        this.propostafacade = propostafacade;
    }

    public void setStatusFacade(StatusFacade statusfacade) {
        this.statusfacade = statusfacade;
    }

    
    
    @Override
    protected Object formBackingObject(HttpServletRequest request) throws Exception {
        //Atualiza sessao
        isLogado(request);
        

        Proposta proposta = propostafacade.newProposta(); 
        
        return proposta;
        
        
    }
    
    @Override
    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
        //Atualiza sessao
        isLogado(request);
        
        //binder.setDisallowedFields(new String[]{"categoria"});

        //Car car = (Car)binder.getTarget();
        Proposta proposta = (Proposta) binder.getTarget();

        // set car's brand from request parameter brand id
        //BrandManager brandManager = new BrandManager();



        Long ProdutoCodigoA = null;
        Long ProdutoCodigoB = null;
        try {
            ProdutoCodigoA = Long.parseLong(request.getParameter("codigoa"));
            ProdutoCodigoB = Long.parseLong(request.getParameter("codigob"));
        } catch (Exception e) {
        }
        if ((ProdutoCodigoA != null) && (ProdutoCodigoB != null)) {

            proposta.setProdutoA((Produto)produtofacade.findByCod(ProdutoCodigoA));
            proposta.setProdutoB((Produto)produtofacade.findByCod(ProdutoCodigoB));
            //proposta.setProduto_codigo_A(ProdutoCodigoA);
            //proposta.setProduto_codigo_B(ProdutoCodigoB);


        }
        // Sempre o status será setado como aberto ao cadastrar nova proposta
        Long StatusCodigo = null;
        try {
            StatusCodigo = Long.parseLong("1");

        } catch (Exception e) {
        }
        if (StatusCodigo != null) {

            proposta.setStatus((Status) statusfacade.findByCod(StatusCodigo));



        }




    }

    @Override
    public ModelAndView onSubmit(Object command) throws ServletException {

        String msg;
        msg=propostafacade.verificaDuplicadaGrava((Proposta)command);

        


        ModelAndView modelAndView = new ModelAndView("propostasucess","mensagem", msg);
        modelAndView.addObject("logado", isLogado());
        modelAndView.addObject("pessoaSessao", getPessoaSession());
        //modelAndView.addObject("status",categoriafacade.teste());
        return modelAndView;
        



        //return new ModelAndView(new RedirectView(getSuccessView()));
    }
}
